Current Issue : January-March Volume : 2025 Issue Number : 1 Articles : 5 Articles
Context: Test case generation is a critical yet challenging task in software development. Recently, AthenaTest – a Deep Learning (DL) approach for generating unit test cases has been proposed. However, our revisiting study reveals that AthenaTest can generate less than one-fifth of the test cases correctly, due to a lack of assertion knowledge and test signature verification. Objective: This paper introduces A3Test, a novel DL-based approach to the generation of test cases, enhanced with assertion knowledge and a mechanism to verify consistency of the name and signatures of the tests. A3Test aims to adapt domain knowledge from assertion generation to test case generation. Method: A3Test employs domain adaptation principles and introduces a verification approach to name consistency and test signatures. We evaluate its effectiveness using 5,278 focal methods from the Defects4j dataset. Results: Our findings indicate that A3Test outperforms AthenaTest and ChatUniTest. A3Test generates 2.16% to 395.43% more correct test cases, achieves 2.17% to 34.29% higher method coverage, and 25.64% higher line coverage. A3Test achieves 2.13% to 12.20% higher branch coverage, 2.22% to 12.20% higher mutation scores, and 2.44% to 55.56% more correct assertions compared to both ChatUniTest and AthenaTest respectively for one iteration. When generating multiple test cases per method A3Test still shows improvements and comparable efficacy to ChatUnitTest. A survey of developers reveals that the majority of the participants 70.51% agree that test cases generated by A3Test are more readable than those generated by EvoSuite. Conclusions: A3Test significantly enhances test case generation through its incorporation of assertion knowledge and test signature verification, contributing to the generation of correct test cases....
Computing and networking are increasingly implemented in software. We design and build a software build assurance scheme detecting if there have been injections or modifications in the various steps in the software supply chain, including the source code, compiling, and distribution. Building on the reproducible build and software bill of materials (SBOM), our work is distinguished from previous research in assuring multiple software artifacts across the software supply chain. Reproducible build, in particular, enables our scheme, as our scheme requires the software materials/ artifacts to be consistent across machines with the same operating system/specifications. Furthermore, we use blockchain to deliver the proof reference, which enables our scheme to be distributed so that the assurance beneficiary and verifier are the same, i.e., the node downloading the software verifies its own materials, artifacts, and outputs. Blockchain also significantly improves the assurance efficiency. We first describe and explain our scheme using abstraction and then implement our scheme to assure Ethereum as the target software to provide concrete proof-of-concept implementation, validation, and experimental analyses. Our scheme enables more significant performance gains than relying on a centralized server thanks to the use of blockchain (e.g., two to three orders of magnitude quicker in verification) and adds small overheads (e.g., generating and verifying proof have an overhead of approximately one second, which is two orders of magnitude smaller than the software download or build processes)....
Context: Code review is effective and widely used, yet still time-consuming. Especially, in large-scale software systems, developers may forget to change other related functions that must be changed together (aka. cochanges). This may increase the number of review iterations and reviewing time, thus delaying the code review process. Based on our analysis of 66 projects from five open-source systems, we find that there are 16%–33% of code reviews where at least one function must be co-changed, but was not initially changed. Objectives: This study aims to propose an approach to recommend co-changed functions in the context of modern code review, which could reduce reviewing time and iterations and help developers identify functions that need to be changed together. Methods: We propose CoChangeFinder, a novel method that employs a Graph Neural Network (GNN) to recommend co-changed functions for newly submitted code changes. Then, we conduct a quantitative and qualitative evaluation of CoChangeFinder with 66 studied large-scale open-source software projects. Results: Our evaluation results show that our CoChangeFinder outperforms the state-of-the-art approach, achieving 3.44% to 40.45% for top-k accuracy, 2.00% to 26.07% for Recall@k, and 0.04 to 0.21 for mean average precision better than the baseline approach. In addition, our CoChangeFinder demonstrates the capacity to pinpoint the functions related to logic changes. Conclusion: Our CoChangeFinder outperforms the baseline approach (i.e., TARMAQ) in recommending cochanged functions during the code review process. Based on our findings, CoChangeFinder could help developers save their time and effort, reduce review iterations, and enhance the efficiency of the code review process....
Purposes: The primary objective of this conducted research is to investigate and propose strategies for improving software testing practices in Tanzanian software development companies. Specifically, the study identify the current state of software testing practices, understand challenges faced by software development companies in Tanzania, propose effective solutions, and evaluate their impact. Methodology: A mixed-methods approach employed to achieve the research objectives. Qualitative and quantitative data collection methods, including surveys, interviews, observations, documentation analysis, and experimentation, utilized to gather comprehensive insights into software testing practices. Purposive sampling employed to select diverse software development companies across different regions in Tanzania. Thematic analysis and statistical analysis applied to analyze qualitative and quantitative data, respectively, ensuring a robust examination of software testing practices. Findings: The research findings reveal the prevailing software testing practices in Tanzanian software development companies. Challenges such as resource constraints, inadequate test coverage, and limited collaboration between developers and testers are identified. Additionally, the study identifies best practices and proposes context-specific solutions to enhance software testing practices in Tanzanian companies. Statistical analysis provides quantitative insights into the effectiveness of proposed solutions. Unique Contribution to Theory, Practices and Policy: The study contributes to bridging the gap between academic research and industrial practices in software testing. Through addressing the unique challenges and opportunities in the Tanzanian context, the research provides actionable recommendations for improving software testing practices. The findings underscore the importance of tailored strategies and collaboration between academia and industry to enhance software quality and reliability in Tanzanian software development companies....
In the recent past, the distributed software development (DSD) process has become increasingly prevalent with the rapid evolution of the software development process. This transformation would necessitate a robust framework for software requirement engineering (SRE) to work in federated environments. Using the federated environment, multiple independent software entities would work together to develop software, often across organizations and geographical borders. The decentralized structure of the federated architecture makes requirement elicitation, analysis, specification, validation, and administration more effective. The proposed model emphasizes flexibility and agility, leveraging the collaboration of multiple localized models within a diversified development framework. This collaborative approach is designed to integrate the strengths of each local process, ultimately resulting in the creation of a robust software prototype. The performance of the proposed DSD model is evaluated using two case studies on the E-Commerce website and the Learning Management system. The proposed model is analyzed by considering divergent functional and non-functional requirements for each of the case studies and analyzing the performance using standardized metrics like mean square error (MSE), mean absolute error (MAE), and Pearson Correlation Coefficient (PCC). It is observed that the proposed model exhibited a reasonable performance with an MSE value of 0.12 and 0.153 for both functional and non-functional requirements, respectively, and an MAE value of 0.222 and 0.232 for both functional and non-functional requirements, respectively....
Loading....